The Transmission Control Protocol (TCP) is one of major transmission protocols currently applied in Internet, which can provide a connection-oriented and reliable byte-stream service.
TCP transmission parameters involved in TCP-based network congestion control mainly include a congestion window, an advertised window, a sending window, a congestion avoidance threshold, a round-trip time, a retransmission timeout count, and a fast retransmission threshold. The congestion window is a key parameter in congestion control, and describes a maximum quantity of packets a sender can send once in congestion control. The advertised window is the size of a sending window the sender presets for a receiver, and functions in a preliminary phase in establishing a TCP connection. The sending window is the size of a window for the sender to actually send data each time. The congestion avoidance threshold is a demarcation point between a slow start phase and a congestion avoidance phase in congestion control, for which an initial value is usually set to 65535 bytes. The round-trip time (RTT) is a time interval from a point when the sender sends a TCP packet to the receiver to a point when the sender receives an ACK acknowledgement packet returned by the receiver. The retransmission timeout (RTO) describes a time interval from a point when a packet is sent to a point when the packet expires, is an important parameter for determining whether the packet is lost and whether a network is congested, and is usually set to 2RTT or 5RTT. The fast retransmission threshold is a quantity of duplicate acknowledgement (ACK) packets which can trigger a fast retransmission, and the network proceeds to a fast retransmission phase when the fast retransmission threshold is exceeded, where a default value of the fast retransmission threshold is 3.
In the transmission process with TCP transmission-based congestion control, the slow start phase is performed first. The sender sets a size of the sending window to a smaller one of sizes of an initial congestion window and the advertised window, and each time segmented packets in a quantity of the congestion window are sent and ACK (acknowledgement) packets for all the segmented packets are successfully received, doubles the size of the congestion window and ensures that the size of the congestion window does not exceeds the current size of the receiver window. The process repeats until the sender receives duplicate ACK packets in a quantity which is equal to or greater than the fast retransmission threshold, the congestion avoidance threshold is set to a half of a current size of the congestion window, a size of the sending window is adjusted to the congestion avoidance threshold, and a congestion avoidance phase is entered. In the congestion avoidance phase, the congestion window is increased by one packet segment within each RTT. A size of the congestion window is halved and the congestion avoidance threshold is adjusted to a half of the size of the congestion window before congestion when a timeout occurs to the sender or the sender receives duplicate ACK packets whose quantity is equal to or greater than the fast retransmission threshold.
In the TCP transmission control above, whether the network is congested is determined according to a status of sent and received packets, and then relevant TCP transmission parameters are adjusted accordingly. However, in a case in which the network is in good condition, packet loss or timeout may occur as well, and a misjudgment of congestion may be made, thus failing to fully utilize link resources in the network.